package com.wingscode.modules.sys.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.wingscode.common.validator.group.AddGroup;
import com.wingscode.common.validator.group.UpdateGroup;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;

/**
 * 招标
 *
 * @author yan
 */
@Data
@TableName("inquiry")
public class InquiryEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * ID
	 */
	@TableId
	private Integer id;

	/**
	 * 用户id
	 */
	@TableField("user_id")
	@NotNull(message="userId不能为空", groups = {AddGroup.class, UpdateGroup.class})
	private Integer userId;

	/**
	 * 地区id
	 */
	@TableField("area_id")
	private Integer areaId;

	/**
	 * 地区父级id
	 */
	@TableField("area_pid")
	private Integer areaPid;

	/**
	 * 类型（1-新版设立，2-分列重组、3-升值增项、4-人才猎聘、5-资质整转）
	 */
	@NotNull(message="type不能为空", groups = {AddGroup.class, UpdateGroup.class})
	private Integer type;

	/**
	 * 是否资质安许（0-否，1-是）
	 */
	@TableField("is_qual")
	private Integer isQual;

	/**
	 * 状态（0-已发布、1-已完成、2-已失效）
	 */
	private Integer state;

	/**
	 * 申请人才证书id
	 */
	@TableField("apply_personnel")
	private Integer applyPersonnel;

	/**
	 * 证书级别id
	 */
	@TableField("certificate_grade")
	private Integer certificateGrade;

	/**
	 * 业务用途id
	 */
	private Integer purpose;

	/**
	 * 时长id
	 */
	private Integer duration;

	/**
	 * 创建时间
	 */
	@TableField("create_time")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
	private Date createTime;

	/**
	 * 更新时间
	 */
	@TableField("update_time")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
	private Date updateTime;

	/**
	 * 备注
	 */
	private String remark;

	/**
	 * 价格形式（1-落地价、2-非落地价）
	 */
	@TableField("price_type")
	private Integer priceType;

	/**
	 * 证书数量
	 */
	@TableField("certificate_num")
	private Integer certificateNum;

	/**
	 * 平台找货（0-否 1-是）
	 */
	@TableField("platform_search")
	private Integer platformSearch;

	/**
	 * 1-招标 2-供应
	 */
	@NotNull(message="classify不能为空", groups = {AddGroup.class, UpdateGroup.class})
	private Integer classify;

	/**
	 * 专业类型id
	 */
	@TableField("major_type")
	private Integer majorType;

	/**
	 * 沟通报价id
	 */
	@TableField("chat_offer_id")
	private Integer chatOfferId;

	/**
	 * 沟通报价的时间
	 */
	@TableField("chat_offer_time")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
	private Date chatOfferTime;

	/**
	 * 招标资质类型名称
	 */
	@TableField("inquiry_name")
	private String inquiryName;

	/**
	 * 招标资质名称
	 */
	@TableField("build_qual_name")
	private String buildQualName;

	/**
	 * 旧招标资质名称
	 */
	@TableField("old_build_qual_name")
	private String oldBuildQualName;

	/**
	 * 招标资质类型
	 */
	@TableField("inquiry_qual_type")
	private String inquiryQualType;

	/**
	 * 截止时间
	 */
	@TableField("deadline_time")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
	private Date deadlineTime;

	/**
	 * 公司id
	 */
	@TableField("agent_id")
	private Integer agentId;

	/**
	 * 招标link list
	 */
	@TableField(exist = false)
	private List<InquiryLinkEntity> linkList;

	/**
	 * 升级增项后的招标link list
	 */
	@TableField(exist = false)
	private List<InquiryLinkEntity> newLinkList;

	/**
	 * 资质id list
	 */
	@TableField(exist = false)
	private List<Integer> buildQualIdList;

	/**
	 * 人才证书名称
	 */
	@TableField(exist = false)
	private String applyPersonnelName;

	/**
	 * 证书等级名称
	 */
	@TableField(exist = false)
	private String certificateGradeName;

	/**
	 * 业务用途名称
	 */
	@TableField(exist = false)
	private String purposeName;

	/**
	 * 使用时长名称
	 */
	@TableField(exist = false)
	private String durationName;

	/**
	 * 专业类型名称
	 */
	@TableField(exist = false)
	private String majorTypeName;

	/**
	 * 报价list
	 */
	@TableField(exist = false)
	private List<OfferPriceEntity> offerPriceList;

	/**
	 * 沟通方报价信息
	 */
	@TableField(exist = false)
	private OfferPriceEntity offerPrice;

	/**
	 * 沟通方总报价
	 */
	@TableField(exist = false)
	private BigDecimal chatOfferPrice;

	/**
	 * 当前登录用户是否报价
	 */
	@TableField(exist = false)
	private boolean isMineOfferPrice;

	/**
	 * 用户名称
	 */
	@TableField(exist = false)
	private String username;

	/**
	 * 用户企业
	 */
	@TableField(exist = false)
	private String company;

	/**
	 * 用户手机号
	 */
	@TableField(exist = false)
	private String mobile;

	/**
	 * 地区名称
	 */
	@TableField(exist = false)
	private String areaName;

	/**
	 * 地区父级名称
	 */
	@TableField(exist = false)
	private String areaPName;

	/**
	 * 用户头像
	 */
	@TableField(exist = false)
	private String userAvatar;

	/**
	 * 价格
	 */
	private BigDecimal price;

}
